package recursion;

/**
 * @author czt
 * @version 1.0
 * @since 2024/12/13
 * 进行了尾调用，导致栈内存溢出
 * 求前n项和-栈内存溢出
 * 从根本上解决:循环代替递归
 */
public class Sum {

    public static void main(String[] args) {
        long sum = getSum(30000);
        System.out.println("sum = " + sum);
    }

    /**
     * 求前n项和
     * @param n 前n项
     * @return 和
     */
    public static long getSum(int n) {
        if (n == 1) {
            return 1;
        }

        return getSum(n - 1) + n;
    }


}
